/*
 * @Author: ljk
 * @Date: 2023-05-11 20:24:13
 * @LastEditors: ljk
 * @LastEditTime: 2023-05-12 13:21:37
 * @Description: 命名管道写入端
 */
#include "comm.hpp"

int main()
{
    // 1. 打开对应的管道文件
    int wfd = open(fifoname.c_str(), O_WRONLY);
    if (wfd < 0)
    {
        std::cerr << errno << " : " << strerror(errno) << std::endl;
        return 1;
    }

    // 2. 写入文件进行通信
    char buffer[NUM];
    while (true)
    {
        // std::cout << "请输入你的消息# ";
        // //是否减一，系统调用 / C  --- 无脑减一
        // char *msg = fgets(buffer, sizeof(buffer) - 1, stdin);
        // assert(msg);
        // //保证msg是被使用的，release版本时
        // (void)msg;
        // int c = getch();
        // if (c == -1)
        // {
        //     continue;
        // }
        
        //不用摁回车即可接收
        system("stty raw");
        int c = getchar();
        system("stty -raw");

        // buffer[strlen(buffer) - 1] = 0;
        // if (strcasecmp(buffer, "quit") == 0) break;

        //是否加一，C语言的\0导致的，但是这是系统调用跟语言无关，所以不用+1
        ssize_t n = write(wfd, (char*)&c, sizeof(char));
        assert(n >= 0);
        (void)n;
    }
    return 0;
}